1. Field of the Invention
The invention relates to communication systems and, more particularly, to the transmission of information using multicarrier transmission techniques wherein symbol-oriented error correction is employed.
2. Brief Description of Related Prior Art
The public switched telephone network (PSTN) provides the most widely available form of electronic communication for most individuals and businesses. Because of its ready availability and the substantial cost of providing alternative facilities, it is increasingly being called upon to accommodate the expanding demands for transmission of substantial amounts of data at high rates. Structured originally to provide voice communication with its consequent narrow bandwidth requirements, the PSTN increasingly relies on digital systems to meet the service demand.
A major limiting factor in the ability to implement high rate digital transmission has been the subscriber loop between the telephone central office (CO) and the premises of the subscriber. This loop most commonly comprises a single pair of twisted wires which are well suited to carrying low-frequency voice communications for which a bandwidth of 0-4 kHz is quite adequate, but which do not readily accommodate broadband communications (i.e., bandwidths on the order of hundreds of kilohertz or more) without adopting new techniques for communication.
One approach to this problem has been the development of discrete multitone digital subscriber line (DMT DSL) technology. In this approach to communications over the local subscriber loop between the central office and the subscriber premises, data to be transmitted is modulated onto a multiplicity of discrete frequency carriers which are summed together and then transmitted over the subscriber loop. Individually, the carriers effectively form subchannels that are separated from each other in frequency by a relatively small amount, but which collectively form what is effectively a broad bandwidth communications channel. At the receiver end, the carriers are demodulated and the data recovered.
Communication using such technology is by way of “frames” of data and control information. In a presently-used form of asymmetric digital subscriber line (“ADSL”) communications, sixty eight data frames and one synchronization frame form a “superframe” that is repeated throughout the transmission. The data frames carry the data that is to be transmitted; the synchronization or “sync” frame provides a known bit sequence that is used to synchronize the transmitting and receiving modems and that also facilitates determination of transmission subchannel characteristics such as signal-to-noise ratio (“SNR”), among others.
A superframe is 17 milliseconds in duration. A frame is effectively 250 micro-seconds in duration (or conversely, the frame rate is approximately 4 kHz) and is made up of a collection of bytes.
The bits comprised in each frame and superframe are transmitted over the subchannels. The number of bits carried on each subchannel (i.e., the “bit loading”) during each data symbol or data block transmission period is determined by transmitting a reference signal over the subchannels and measuring the characteristics of the subchannel, typically, the signal to noise ratio, based on this. The bit loading may vary from one subchannel to another, depending on the signal-to-noise ratio of the particular channels. The loading information is typically calculated at the receiving end of the subscriber line (e.g., at the subscriber premises in the case of transmission from the central office is to the subscriber) and is communicated to the other end. It is stored at both ends in the form of at least one “bit-loading table” that thereby defines the communications over the channel.
The maximum amount of information that can be encoded onto a particular subcarrier is a function of the signal to noise ratio of the communication channel with respect to that subcarrier. The signal to noise ratio of a communication channel can vary according to frequency so that the maximum amount of information that can be encoded onto one carrier may be different from the maximum amount of information that can be encoded onto another carrier.
A bit loading algorithm provides at least one bit allocation table that indicates the amount of information (in bits) that is to be encoded on each of the carriers. That is, for a multicarrier communication system with J carriers, a bit allocation table B[j] indicates, for each j=1 to J, the amount of information that is to be encoded onto each of the J carriers.
Shaping the transmission to match the channel characteristics is known. For example, a technique known as “water pouring” was introduced by Gallager in 1968 (“Information Theory and Reliable Communication”, page 389) and by Wozencraft in 1965 (“Principles of Communication Engineering”, pp. 285-357). Water pouring involves distributing the energy of the transmission signal according to the channel frequency response curve (a plot of the signal to noise ratio as a function of frequency). The frequency response curve is inverted and the available signal energy (the “water”) is “poured” into the inverted curve so that more of the energy is distributed into those portions of the channel having the highest signal to noise ratio. In a multicarrier system in which the transmission band is divided into numerous subchannels, throughput can be maximized by putting as many bits in each subcarrier as can be supported given the “water pouring” energy and a desired error rate.
Other techniques for allocating bits among carriers of a multicarrier signal are known. For example, U.S. Pat. No. 4,731,816 to Hughes-Hartogs discloses a bit loading scheme where one bit at a time is incrementally added to each subcarrier until a maximum rate is achieved. Subcarriers that require the least amount of additional power to support an additional bit are selected first.
Another example is disclosed in U.S. Pat. No. 5,479,477 to Chow et al. More specifically, Chow et al. discloses a bit loading scheme that is capable of either maximizing the throughput or maximizing the margin for a particular target data rate. Unlike Hughes-Hartogs, Chow et al. determines the bit loading table one carrier at a time (rather than one bit at a time). In Chow et al., all the carriers are sorted in descending order according to the measured signal to noise ratio. The initial subchannels that are selected are the ones capable of carrying the most bits. Using the Chow et al. scheme to maximize the data rate provides a bit loading table similar to that provided by the Hughes-Hartogs algorithm.
Another conventional technique is disclosed in U.S. Pat. No. 5,596,604 to Cioffi et al. In pertinent part, Cioffi et al. discloses that in order to address problems of noise-related errors in the communications system, forward error correction coding (FECC) and interleaving techniques may be implemented. Accordingly to these techniques, an input data block to be transmitted is augmented with parity data so as to constitute a codeword and so as to enable errors in the block to be detected and corrected. Codewords may be interleaved for transmission to reduce the effect of error bursts on individual code words.
Cioffi et al. teaches that there may exist a trade-off between high reliability, which requires effective error correction and immunity to noise, and short transmission delays. That is, Cioffi et al. teaches that by increasing the periods over which interleaving is effected, the system may be made to exhibit greater immunity to impulse noise, but this may come at the cost of greater transmission delays. In order to try to improve this trade-off situation, Cioffi et al. proposes applying FECC coding and codeword interleaving differently to input signals from different channels to produce encoded data signals having different reliabilities and different coding delays. Bits of encoded data signals having relatively less delay are allocated to carriers that are subject to relatively more attenuation and/or channel noise. This is said to permit each signal to be transmitted in accordance with an individually selected compromise between high reliability and short transmission delay.
Thus, in multicarrier communications, it is known to utilize FECC coding techniques (e.g. Reed Solomon coding) that are symbol based, whereby to enable the receiver to detect and correct errors in the received FECC symbols. However, depending upon the type of error correction coding methodology employed and the manner in which bit loading is performed, certain problems may arise in multicarrier communications. For example, according to the prior art, bit loading is carried out such that bits are loaded into the channels or subchannels (collectively or singly referred to hereafter as “channels”) from a serial input bit stream, in ascending channel order or increasing constellation size, without regard to whether the bits assigned to any given channel during a given transmission period are comprised in more than one FECC symbol. As can be readily appreciated, given these types of bit loading schemes, it is common for bits from multiple FECC symbols to be assigned to a single channel in a given transmission period. As mentioned above, FECC codes map the serial input bit stream to codewords that are a collection of FECC symbols, where an FECC symbol is composed of a finite number of bits (e.g. one byte). The codeword also contains FECC parity symbols, which are overhead symbols that are added to the bit stream to provide the error correction capability at the receiver. The FECC codewords are constructed in such a way so as to enable the receiver to correct a certain number of FECC symbols that are received in error. The number of symbols that can be corrected by a given FECC code is known as the “correction capability” of the code.
When such symbol-oriented coding and bit loading are employed, an error on a single channel may cause errors to be introduced into multiple FECC symbols; unfortunately, this weakens the power of the FECC code since the code can only correct a fixed maximum number of FECC symbols received in error, and a single channel error that produces multiple symbol errors wastefully uses up the correction capability of the FECC code. It would be desirable to reduce the number of FECC symbols received in error that result from a single channel error, and to thereby increase the efficiency of error correction in multicarrier communications using such symbol-oriented error correction methodologies.